logic in discrete mathematics